An important trend in software engineering is componentization, or the ability to build a composite application using a set of software components. The software components included in a new composite application may be already available at the time the new composite application is built. Thus, the components may be partially or completely reused.
In such a scenario, a challenge facing a development team is to estimate the quality of the composite application. Indeed, the development team may be responsible for developing only a small fraction of the code, with the rest of the code being reused.